<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <script src="js/template-web.js"></script>
    <script src="js/ajax.js"></script>
    <style type="text/css">
        .container {
            padding-top: 100px;
        }

        .list-group {
            display: none;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="form-group">
            <input type="text" class="form-control" placeholder="请输入关键字" id="search1">
            <ul class="list-group" id="list-box">
                <script type="text/html" id="tpl1">
                    {{each lis}}
                        <li class="list-group-item">{{$value}}</li>
                    {{/each}}
                </script>
            </ul>
        </div>
    </div>

    <script>
        /* 
            实现通过关键字的搜索的请求
        */
        const searchObj = document.querySelector("#search1");
        const ulObj = document.querySelector("#list-box");

        searchObj.oninput = function () {
            // 获取输入的值
            const key = this.value;
            // 非空判断
            if (key.trim().length == 0) {
                ulObj.style.display = 'none';
                return;
            }

            // 不为空则发送请求
            ajax({
                type: 'GET',
                url: 'http://120.78.190.136:8080/spboot/searchByKey',
                data: {
                    keyword: key
                },
                success: function (data) {
                    // 判断服务端是否有数据返回
                    if (data.length != 0) {
                        // 使用模版来渲染数据
                        /* 
                          data：是一个字符串
    
                            问题：需要创建多个li标签，然后把data的值放进去，但是data是一个
                            字符串。
                            模板中需要接受的是一个数组  
                            
                        */
                        const dataArr = data.split(",");
                        const lis = template('tpl1', { lis: dataArr });
                        ulObj.innerHTML = lis;
                        ulObj.style.display = 'block';
                    }
                }

            })
        }
    </script>
</body>

</html>